﻿Imports System.Xml
Imports DevComponents.DotNetBar

Public Class FrmCapturaCompra
    Dim reader As XmlTextReader

    Private Sub AtrasBtn_Click(sender As Object, e As EventArgs) Handles AtrasBtn.Click
        FrmCatalogoCompras.Show()
        _EnTarea = False
        _Editar = False
        Me.Close()
    End Sub

    Private Sub FrmCapturaCompra_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            Me.DataSet_Prod_Serv.EnforceConstraints = False
            'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Orden_Compra' Puede moverla o quitarla según sea necesario.
            Me.Orden_CompraTableAdapter.Fill_OrdenGeneral(Me.DataSet_Prod_Serv.Orden_Compra)
            'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Unidades' Puede moverla o quitarla según sea necesario.
            'Me.UnidadesTableAdapter.Fill(Me.DataSet_Prod_Serv.Unidades)
            'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Almacenes' Puede moverla o quitarla según sea necesario.
            'Me.AlmacenesTableAdapter.Fill(Me.DataSet_Prod_Serv.Almacenes)


            For Each fila As DataGridViewRow In Me.dgvOrdenCompra.Rows
                Me.dgvOrdenCompra.Rows(fila.Index).Cells(5).Value = Me.DataSet_Prod_Serv.Orden_Compra.Item(fila.Index)(6)
                Me.dgvOrdenCompra.Rows(fila.Index).Cells(6).Value = Me.DataSet_Prod_Serv.Orden_Compra.Item(fila.Index)(7)
                Me.dgvOrdenCompra.Rows(fila.Index).Cells(8).Value = Me.DataSet_Prod_Serv.Orden_Compra.Item(fila.Index)(9)
            Next
        Catch ex As Exception
            ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try

        'Todo esto son los colores de los controles que por alguna razón no los toma en sus propiedades del diseñador ಥ_ಥ 
        Me.BackColor = StyleManager1.MetroColorParameters.CanvasColor
        lblNombre.ForeColor = SystemColors.MenuHighlight 'Los controles no cambian su foreColor por alguna extraña razón ಥ_ಥ
        txtCodigo.BackColor = StyleManager1.MetroColorParameters.CanvasColor
        txtObservacion.BackColor = StyleManager1.MetroColorParameters.CanvasColor
        txtBusquedaCodigo.BackColor = StyleManager1.MetroColorParameters.CanvasColor
        'cbTipo.BackColor = StyleManager1.MetroColorParameters.CanvasColor
        slideOpciones.BackColor = Color.Black
        panelOpciones.BackColor = Color.Black
        slideOrden.BackColor = Color.Gray
        dgvCompras.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)

        Me.slideOrden.IsOpen = False
    End Sub

    Private Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles btnAgregar.Click
        Try
            OpenFileDialog1.ShowDialog()
            If Not OpenFileDialog1.FileName = "Imagen" Then
                reader = New XmlTextReader(OpenFileDialog1.FileName)
                Do While (reader.Read())
                    Select Case reader.NodeType
                        Case XmlNodeType.Element 'Mostrar comienzo del elemento.
                            If reader.Name = "cfdi:Concepto" Then
                                Console.Write("<" + reader.Name)
                                If reader.HasAttributes Then 'If attributes exist
                                    While reader.MoveToNextAttribute()
                                        'Mostrar valor y nombre del atributo
                                        Console.Write(" {0}='{1}'", reader.Name, reader.Value)
                                    End While
                                End If
                                Console.WriteLine(">")
                            End If
                    End Select
                Loop
            End If
        Catch ex As Exception
            ToastNotification.Show(Me, "Error al cargar archivo.", My.Resources.appbar_cone, 3000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try
    End Sub

    Private Sub txtNoInterno_ButtonCustomClick(sender As Object, e As EventArgs) Handles txtCodigo.ButtonCustomClick
        Me.dgvOrdenCompra.DataSource = Nothing
        Me.dgvOrdenCompra.DataSource = Me.DataSet_Prod_Serv.Orden_Compra
        Me.Orden_CompraTableAdapter.Fill_OrdenGeneral(Me.DataSet_Prod_Serv.Orden_Compra)
        Me.slideOrden.IsOpen = True
    End Sub

    Private Sub txtNoInterno_KeyDown(sender As Object, e As KeyEventArgs) Handles txtCodigo.KeyDown
        Try
            If e.KeyCode = Keys.Enter Then
                'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Orden_Compra' Puede moverla o quitarla según sea necesario.
                Me.Orden_CompraTableAdapter.Fill_Buscar_Orden2(Me.DataSet_Prod_Serv.Orden_Compra, txtCodigo.Text.Trim)

                Dim filas As Integer = 0
                For Each fila As DataRow In Me.DataSet_Prod_Serv.Orden_Compra
                    Me.dgvCompras.Rows.Add()
                    Me.dgvCompras.Rows(filas).Cells(0).Value = fila.Item(7).ToString
                    Me.dgvCompras.Rows(filas).Cells(1).Value = fila.Item(6).ToString
                    Me.dgvCompras.Rows(filas).Cells(2).Value = fila.Item(8).ToString
                    Me.dgvCompras.Rows(filas).Cells(3).Value = fila.Item(9).ToString
                    Me.dgvCompras.Rows(filas).Cells(4).Value = fila.Item(3).ToString
                    Me.dgvCompras.Rows(filas).Cells(5).Value = fila.Item(4).ToString
                    'txtBusquedaCodigo.Text = fila.Item(10).ToString
                    filas += 1
                Next
            End If
        Catch ex As Exception
            ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 3000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try
    End Sub

    Private Sub Ocultar_Panel() Handles Me.Click, dgvCompras.Click
        slideOpciones.IsOpen = False
        slideOrden.IsOpen = False
    End Sub

    Private Sub txtBusquedaCodigo_ButtonCustomClick(sender As Object, e As EventArgs) Handles txtBusquedaCodigo.ButtonCustomClick
        If txtBusquedaCodigo.Text.Trim <> "" Then
            Me.dgvOrdenCompra.DataSource = DataSet_Prod_Serv.Orden_Compra.Select("codigo like '" & txtBusquedaCodigo.Text.Trim & "%'")
            For Each fila As DataGridViewRow In Me.dgvOrdenCompra.Rows
                Me.dgvOrdenCompra.Rows(fila.Index).Cells(5).Value = Me.DataSet_Prod_Serv.Orden_Compra.Item(fila.Index)(6)
                Me.dgvOrdenCompra.Rows(fila.Index).Cells(6).Value = Me.DataSet_Prod_Serv.Orden_Compra.Item(fila.Index)(7)
                Me.dgvOrdenCompra.Rows(fila.Index).Cells(8).Value = Me.DataSet_Prod_Serv.Orden_Compra.Item(fila.Index)(9)
            Next
        Else
            Me.dgvOrdenCompra.DataSource = Nothing
            Me.dgvOrdenCompra.DataSource = Me.DataSet_Prod_Serv.Orden_Compra
            Me.Orden_CompraTableAdapter.Fill_OrdenGeneral(Me.DataSet_Prod_Serv.Orden_Compra)
        End If
    End Sub

    Private Sub txtBusquedaCodigo_KeyDown(sender As Object, e As KeyEventArgs) Handles txtBusquedaCodigo.KeyDown
        txtBusquedaCodigo_ButtonCustomClick(sender, e)
    End Sub
End Class